The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Arbitration systems are used in a large variety of applications where two or more devices need to access a shared resource. Examples of a shared resource include shared memory, a network switch fabric, a specialized state machine, or a complex computational element.
One form of an arbitration system is known as a “round-robin” arbiter, which works by assigning priority to each “client device” in a repeating sequence or in a sequence based on past access of clients. Unfortunately, while round-robin arbitration schemes are simple in theory, service latency can be a problem as the number of clients grows.
Another form of arbitration system is known as the Time Domain Multiplexing (TDM), or “pizza”, arbiter. This type of arbitration scheme works by dividing time into a repeating sequence of time “slices”, and assigning clients on a per-slice basis. Unfortunately, TDM arbiters do not work well when the “slices” become too thin, which happens when there are too many clients to service or when the various clients operate at substantially different speeds. For example, assuming that a TDM arbiter is needed to service two clients with one client operating at a data rate of 10M bits and the other client operating at 100 G bits/s, the TDM arbiter may need to resort to frames with 10,001 slices. As TDM arbitration schemes perform poorly with 10,000+ slices (in terms of area/logical cell count/memory bit count), use of a TDM arbitration approach may be unsuitable.